<?php
class DBSql
{
	var $db;
	var $query_id = 0;

  //Clase Constructor
	function DBSql($opt_db)
	{
		$this->db['host'] = trim($opt_db['host']);
		$this->db['user'] = trim($opt_db['user']);
		$this->db['pass'] = trim($opt_db['pass']);
		$this->db['dbas'] = trim($opt_db['dbas']);
		$this->db['connection'] = false;
		$this->db['linkConex'] = "1";
		$this->db['error'] = (bool)false;
	}

	//Abre la conexion con la base de datos
	function db_connect()
	{
		$this->db['linkConex'] = @mysql_pconnect($this->db['host'],$this->db['user'],$this->db['pass']);
		if (!$this->db['linkConex'])
		{
 			$errno = mysql_errno().": ".mysql_error();
 			$this->db['connection'] = false;
			$this->db['error'] = "Error conectando a la base de datos (".$errno.")";
	 		return(false);
		}
		else if (!@mysql_select_db($this->db['dbas'],$this->db['linkConex']))
		{
			$errno = mysql_errno().": ".mysql_error();
			$this->db['connection'] = false;
			$this->db['error'] = "Error seleccionando la base de datos (".$errno.")";
			return(false);
		}

	 	$this->db['connection'] = true;
		return($this->db['error']);
	}

	//Cierra la conexion con la base de datos
	function db_disconnect()
	{
		if ($this->db['linkConex']) @mysql_close($this->db['linkConex']);
		return((bool)true);
	}

	//Devuelve true o false segun si esta o no abierta o conectada la base da datos
	function is_connection()
  {
		return($this->db['connection']);
  }

	//Devuelve un mensaje si sa ha producido o no un error en la conexion con la BD
  function msg_error()
  {
		return($this->db['error']);
	}

  //Ejecuta una sentencia SQL. La funcion recibe como parametro de entrada la SQL a ejecutar
  function db_executequery($query)
	{
  	$this->query_id = @mysql_query($query, $this->db['linkConex']);
    if ($this->query_id != NULL)
		{
    	while($tmp = $this->db_next())
			{
      	$info_elements[]=$tmp;
      }
      return $info_elements;
    }
  }

	/*
	 * Devuelve un array con los resultados de la ejecucion de una query.
	 * Cada columna es etiquetada con el nombre de la columna de la BD
	 * El array contendra el resultado o NULL si no hay filas o no se haya
	 * podido ejecutar la consulta
	 */
	function db_next()
	{
		//$query_id es el id de la consulta que se ha ejecutado
	  if ($this->query_id != NULL)
		{
	  	$row = @mysql_fetch_row($this->query_id);
      if ($row != NULL)
			{
	      foreach($row as $i => $value)
				{
	        $column = @mysql_field_name($this->query_id,$i);
	        $resultado["$column"] = $value;
        }
        return ($resultado);
	    }
			else
			{
      	return NULL;
			}
		}
		else
		{
    	return NULL;
		}
	}


	/***********  FUNCIONES DE MANEJOS USUARIOS  *************/

	
    function sqlUsuario($empresa,$usuario,$passw)
     {
         $sel_query = " SELECT U.idUsuario, U.usuario, R.rol, E.idEmpresa, E.razonSocial, E.titulo ";
		 $sel_query.= " FROM usuario U INNER JOIN empresa E ON (U.idEmpresa=E.idEmpresa) INNER JOIN rol R ON (U.idRol=R.idRol) ";
		 $sel_query.= " WHERE E.nombreClave = '".$empresa."' AND U.usuario = '".$usuario."' AND U.passw = '".$passw."' AND U.idEstado = 1";
        
		 $result = mysql_query($sel_query);
     	 return $result;
     }

	
	/*--------------------------ADMINISTRACION----------------------------------------------------------*/
	
	//Lista de Paises
   	function sqlListaPaises(){
	
       	$sel_query = " SELECT idPais, Descripcion, Codigo, Estatus ";
		$sel_query.= " FROM pais ";
		
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}

	function sqlInfoPais($idPais){
	
       	$sel_query = " SELECT idPais, Descripcion, Codigo, Estatus ";
		$sel_query.= " FROM pais ";
		$sel_query.= " WHERE idPais = ".$idPais."";
		
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}
	
	function sqlExistePais($idPais, $descripcion, $codigo){
	
       	$sel_query = " SELECT idPais ";
		$sel_query.= " FROM pais ";
		$sel_query.= " WHERE (descripcion = '".$descripcion."' OR codigo  = '".$codigo."') AND idPais <> ".$idPais."";
	
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}
	
	function sqlInsertPais($descripcion, $codigo, $estatus){
	
		$sel_query  = " INSERT INTO pais (descripcion, codigo, estatus)";
		$sel_query .= " VALUES('".$descripcion."','".$codigo."','".$estatus."')";
		
		$result = mysql_query($sel_query);
		return $result;
		
	}
	
	function sqlUpdatePais($idPais, $descripcion, $codigo, $estatus){
		
		$sel_query  = " UPDATE pais";
		$sel_query .= " SET descripcion = '".$descripcion."', codigo ='".$codigo."'";
		$sel_query .= " WHERE idPais = ".$idPais."";
		
		$result = mysql_query($sel_query);
		return $result;
		
	}
	
	function sqlDeletePais($idPais){
	
		$sel_query  = " DELETE FROM pais";
		$sel_query .= " WHERE idPais = ".$idPais."";
							
		$result = mysql_query($sel_query);
		return $result;
		
	}
	
		
	//Lista de Departamentos por pais
   	function sqlListaDepartamentosXPais($idPais){
		$filtro = "";
		if($idPais != 0){
			$filtro = " WHERE DP.idPais = '".$idPais."'";
		}
		
       	$sel_query = " SELECT DP.idDepartamento, PA.idPais, PA.Descripcion as pais, DP.Descripcion, DP.Codigo, DP.Estatus ";
		$sel_query.= " FROM departamento DP INNER JOIN pais PA ON (DP.idPais = PA.idPais)";
		$sel_query.= $filtro;
		$sel_query.= " ORDER BY PA.Descripcion, DP.Descripcion";

       	$result = mysql_query($sel_query);
     	return $result;
		
   	}
	
	function sqlInfoDepartamento($idDepartamento){
	
       	$sel_query = " SELECT idDepartamento, idPais, Descripcion, Codigo, Estatus ";
		$sel_query.= " FROM departamento ";
		$sel_query.= " WHERE idDepartamento = ".$idDepartamento."";
		
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}
	
	function sqlExisteDepartamento($idDepartamento, $idPais, $descripcion, $codigo){
	
       	$sel_query = " SELECT idDepartamento ";
		$sel_query.= " FROM departamento ";
		$sel_query.= " WHERE (descripcion = '".$descripcion."' OR codigo  = '".$codigo."') ";
		$sel_query.= " AND idPais = ".$idPais." AND idDepartamento <> ".$idDepartamento."";
	
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}
	
	function sqlInsertDepartamento($idPais, $descripcion, $codigo, $estatus){
	
		$sel_query  = " INSERT INTO departamento (idPais, descripcion, codigo, estatus)";
		$sel_query .= " VALUES('".$idPais."','".$descripcion."','".$codigo."','".$estatus."')";
		
		$result = mysql_query($sel_query);
		return $result;
		
	}
	
	function sqlUpdateDepartamento($idDepartamento, $idPais, $descripcion, $codigo, $estatus){
	
		$sel_query  = " UPDATE departamento";
		$sel_query .= " SET idPais = '".$idPais."', descripcion = '".$descripcion."', codigo ='".$codigo."'";
		$sel_query .= " WHERE idDepartamento = ".$idDepartamento."";
							
		$result = mysql_query($sel_query);
		return $result;
		
	}
	
	function sqlDeleteDepartamento($idDepartamento){
	
		$sel_query  = " DELETE FROM departamento";
		$sel_query .= " WHERE idDepartamento = ".$idDepartamento."";
							
		$result = mysql_query($sel_query);
		return $result;
		
	}
		
	//Lista de Provincias	
   	function sqlListaProvinciasXPaisXDepartamento($idPais, $idDepartamento){
	
		$filtro = " WHERE 1=1 ";
		if($idPais != 0){
			$filtro = " AND PA.idPais = '".$idPais."'";
		}
		if($idDepartamento != 0){
			$filtro = " AND DP.idDepartamento = '".$idDepartamento."'";
		}
		
       	$sel_query = " SELECT PV.idProvincia, PA.idPais, PA.Descripcion as pais, DP.idDepartamento, DP.Descripcion as departamento, PV.Descripcion, PV.Codigo, PV.Estatus ";
		$sel_query.= " FROM provincia PV INNER JOIN departamento DP ON (PV.idDepartamento = DP.idDepartamento)";
		$sel_query.= " INNER JOIN pais PA ON (DP.idPais = PA.idPais)";
		$sel_query.= $filtro;
		$sel_query.= " ORDER BY PA.Descripcion, DP.Descripcion, PV.Descripcion";
		
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}
	
	function sqlInfoProvincia($idProvincia){
	
       	$sel_query = " SELECT PV.idProvincia, DP.idPais, PV.idDepartamento, PV.Descripcion, PV.Codigo, PV.Estatus ";
		$sel_query.= " FROM provincia PV INNER JOIN departamento DP ON (PV.idDepartamento = DP.idDepartamento)";
		$sel_query.= " WHERE PV.idProvincia = ".$idProvincia."";
		
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}
	
	function sqlExisteProvincia($idProvincia, $idDepartamento, $descripcion, $codigo){
	
       	$sel_query = " SELECT idProvincia ";
		$sel_query.= " FROM provincia ";
		$sel_query.= " WHERE (descripcion = '".$descripcion."' OR codigo  = '".$codigo."') ";
		$sel_query.= " AND idDepartamento = ".$idDepartamento." AND idProvincia <> ".$idProvincia."";
	
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}
	
	function sqlInsertProvincia($idDepartamento, $descripcion, $codigo, $estatus){
	
		$sel_query  = " INSERT INTO provincia (idDepartamento, descripcion, codigo, estatus)";
		$sel_query .= " VALUES('".$idDepartamento."','".$descripcion."','".$codigo."','".$estatus."')";
		
		$result = mysql_query($sel_query);
		return $result;
		
	}
	
	function sqlUpdateProvincia($idProvincia, $idDepartamento, $descripcion, $codigo, $estatus){
	
		$sel_query  = " UPDATE provincia";
		$sel_query .= " SET idDepartamento = '".$idDepartamento."', descripcion = '".$descripcion."', codigo ='".$codigo."'";
		$sel_query .= " WHERE idProvincia = ".$idProvincia."";
							
		$result = mysql_query($sel_query);
		return $result;
		
	}
	
	function sqlDeleteProvincia($idProvincia){
	
		$sel_query  = " DELETE FROM provincia";
		$sel_query .= " WHERE idProvincia = ".$idProvincia."";
							
		$result = mysql_query($sel_query);
		return $result;
		
	}
	
	//Lista de Provincias por Pais y Departamentos
	function sqlListaProvinciasXDepartamento($idDepartamento){
	
       	$sel_query = " SELECT idProvincia, Descripcion, Codigo, Estatus ";
		$sel_query.= " FROM provincia ";
		$sel_query.= " WHERE idDepartamento = '".$idDepartamento."'";
		
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}
	
	//Lista de Distritos	
   	function sqlListaDistritosXPaisXDepartamentoXProvincia($idPais, $idDepartamento, $idProvincia){
	
		$filtro = " WHERE 1=1 ";
		if($idPais != 0){
			$filtro = " AND PA.idPais = '".$idPais."'";
		}
		if($idDepartamento != 0){
			$filtro = " AND DP.idDepartamento = '".$idDepartamento."'";
		}
		if($idProvincia != 0){
			$filtro = " AND PV.idProvincia = '".$idProvincia."'";
		}
		
       	$sel_query = " SELECT DT.idDistrito, PA.idPais, PA.Descripcion as pais, DP.idDepartamento, DP.Descripcion as departamento, PV.idProvincia, PV.Descripcion as provincia, DT.Descripcion, DT.Codigo, DT.Estatus  ";
		$sel_query.= " FROM distrito DT INNER JOIN provincia PV ON (DT.idProvincia = PV.idProvincia)";
		$sel_query.= " INNER JOIN departamento DP ON (PV.idDepartamento = DP.idDepartamento)";
		$sel_query.= " INNER JOIN pais PA ON (DP.idPais = PA.idPais)";
		$sel_query.= $filtro;
		$sel_query.= " ORDER BY PA.Descripcion, DP.Descripcion, PV.Descripcion";
		
       	$result = mysql_query($sel_query);
     	return $result;
		
   	}	




	

	

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	//Despues
	function sqlUpdateCambiarPassword($idEmpresa,$idUsuario,$passw)
	{
		$sel_query  = " UPDATE usuario ";
		$sel_query .= " SET passw = '".$passw."' ";
		$sel_query .= " WHERE idEmpresa = '".$idEmpresa."' AND idUsuario = '".$idUsuario."' ";
					
		$result = mysql_query($sel_query);
		return $result;
	}
	
	
	
}

?>